Scaled signal processing elements for reduced filter tap noise

ABSTRACT

An adaptive transversal filter having tap weights W j  which are products of corresponding tap coefficients C j  and tap gains M j  is provided. A filter control loop controls all of the tap coefficients C j  such that an error signal derived from the filter output is minimized. One or more tap control loops controls a tap gain M k  such that the corresponding tap coefficient C k  satisfies a predetermined control condition. For example, |C k | can be maximized subject to a constraint |C k |≦C max , where C max  is a predetermined maximum coefficient value. In this manner, the effect of quantization noise on the coefficients C j  can be reduced. Multiple tap control loops can be employed, one for each tap. Alternatively, a single tap control loop can be used to control multiple taps by time interleaving.

FIELD OF THE INVENTION

This invention relates to adaptive filters for signal processing.

BACKGROUND

Present day communication systems typically perform various signal processing functions in order to provide communication. One common signal processing element in communication systems is a filter, which generally provides an output signal y(t) that depends on an input signal x(t). Such filters can be designed to perform various useful functions in a communication system, such as attenuating interfering signals and/or out of band noise. Filtering is well known, and accordingly many filter implementations have been developed. Here we are concerned with transversal filters.

FIG. 1 is a block diagram of a typical prior art transversal filter. In the filter of FIG. 1, the input x(t) is provided to a delay line including time delay elements 104, 106, 108, . . . in succession. If the time delays provided by delay elements 104, 106, 108, . . . are all equal to Td, then the outputs of delay elements 104, 106, . . . are x(t−Td), x(t−2Td), etc. The filter output y(t) is a weighted sum of the values provided by the delay line. This sum is provided by multiple filter taps, one of which is labeled as 110 on FIG. 1. In tap 110, a weight 114 having a value W₂ and the output of delay element 104 are provided to a multiplier 120. The output of multiplier 120 is received by a summing junction (or summer) 124 which provides y(t) as an output. Thus, tap 110 provides a term equal to W₂x(t−Td) in the output y(t). Similarly, weight 112 and multiplier 118 provide a term W₁x(t) in y(t), and weight 116 and multiplier 122 provide a term W₃x(t−2Td) in y(t). Transversal filters can have any number of taps. The input-output response of the filter (i.e., the relation between y(t) and x(t)) is determined by the tap weights W_(j) and the delays provided by the delay line.

FIG. 2 shows a typical prior art adaptive transversal filter. On FIG. 2, a transversal filter 202 receives an input x(t) and provides an output y(t). In the example of FIG. 2, filter 202 is a three tap filter having tap weights W₁, W₂, and W₃. The filter output y(t) is also provided to an error estimator 204, which derives an error signal in part from the filter output y(t). Typically, other signals (not shown) are also input to error estimator 204. These other signals, along with y(t), are used to derive the error signal. This error signal is received by a weight generator 206, which controls the weights in filter 202 to minimize the error signal. Thus the arrangement of FIG. 2 functions as a filter control loop that controls the weights W_(j) in order to minimize the error signal. Transversal filters are particularly suitable for such adaptive filtering, since the output y(t) depends on the weights W_(j) in a simple manner that facilitates closed loop control.

Such adaptive filtering has found many applications, which primarily differ in the signal that is regarded as the “error signal” to be minimized. For example, in decision feedback equalization, the error signal is an error estimate provided by a slicer that quantizes the filter output y(t) to a set of digital signal levels. In interference cancellation, the error signal to be minimized is the contribution to the output y(t) from an interfering signal z(t). These various alternatives for the error signal to be minimized correspond to delivery of different signals (not shown) to error estimator 204 in addition to filter output y(t).

Adaptive filtering as shown in FIG. 2 is well known, and various modifications of the basic scheme are typically directed toward reducing the computations required for filtering. The multiplication of tap weight and delayed input is of particular interest in the art. For example, U.S. Pat. No. 4,782,458 considers the restriction of tap weights to powers of two, which allows multiplication to be performed by shifting. Similarly, U.S. Pat. No. 4,691,293 considers encoding the filter input in powers of two, which also allows multiplication to be performed by shifting. U.S. Pat. No. 3,959,637 uses delta coding for the tap weights in order to obviate the need for digital multiplication circuits. U.S. Pat. No. 4,031,377 considers multiplication where a floating point factor is approximately expressed as a sum of two terms, the two terms selected to facilitate rapid multiplication by shifting.

However, the conventional arrangement of FIG. 2 has drawbacks that provide room for improvements other than reducing computation time. Consider an example where the tap weights W_(j) are digital and can vary from −511 u to 512 u, where u is a unit weight. A relatively large tap weight having W on the order of 500 u has a precision of about 0.2%, while a relatively small tap weight having W on the order of 10 u only has a precision of about 10%. Thus, smaller tap weights tend to be less precise than large tap weights. An alternative point of view is to regard +/−1 u as a “quantization noise” which is additive to the tap weights. Such quantization noise has a larger relative impact on small tap weights than on large tap weights in the conventional arrangement of FIG. 2.

Accordingly, it would be an advance in the art to provide adaptive transversal filtering that provides improved precision for relatively low tap weights. It would also be an advance in the art to reduce the impact of quantization noise for relatively small tap weights.

SUMMARY

The present invention provides an adaptive transversal filter having tap weights W_(j) which are products of corresponding tap coefficients C_(j) and tap gains M_(j). A filter control loop controls all of the tap coefficients C_(j) such that an error signal derived from the filter output is minimized. One or more tap control loops controls a tap gain M_(k) such that the corresponding tap coefficient C_(k) satisfies a predetermined control condition. For example, |C_(k)| can be maximized subject to a constraint |C_(k)|≦C_(max), where C_(max) is a predetermined maximum coefficient value. In this manner, the effect of quantization noise on the coefficients C_(j) can be reduced. Multiple tap control loops can be employed, one for each tap. Alternatively, a single tap control loop can be used to control multiple taps by time interleaving.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a typical prior art transversal filter.

FIG. 2 is a block diagram of a typical prior art adaptive transversal filter.

FIG. 3 is a block diagram of an adaptive transversal filter according to an embodiment of the invention.

FIG. 4 is a block diagram of a three tap decision feedback equalizer according to an embodiment of the invention.

FIG. 5 is a block diagram of a three tap decision feedback equalizer according to another embodiment of the invention.

FIG. 6 is a block diagram of a three tap decision feedback equalizer according to yet another embodiment of the invention.

DETAILED DESCRIPTION

FIG. 3 shows an adaptive transversal filter according to an embodiment of the invention. On FIG. 3, a transversal filter 302 receives an input x(t) and provides an output y(t). In the example of FIG. 3, transversal filter 302 has N=3 taps having weights W_(j), where 1≦j≦N. Weight W₁ is expressed as a product of a coefficient C₁ and a gain M₁. Weights W₂ and W₃ are equal to coefficients C₂ and C₃ respectively. Thus the corresponding gains M₂ and M₃ can be regarded as being set to unity in this example. The filter output y(t) is received by error estimator 204 (as on FIG. 2), which provides an error signal to coefficient generator 306. Coefficient generator 306 provides coefficients C₁, C₂ and C₃ to transversal filter 302. Coefficient C₁ is received by dynamic gain logic 308, which provides gain M₁ to transversal filter 302.

The operation of the embodiment of FIG. 3 can be regarded as a double control loop. A filter control loop including filter 302, error estimator 204 and coefficient generator 306 controls all tap coefficients (i.e., C₁, C₂, and C₃ in this example) to minimize the error signal provided by estimator 204. As indicated above, one or more other signals (not shown) are typically input to error estimator 204 in addition to y(t) to provide the error signal. Thus the error signal is derived in part from y(t). In addition to this filter control loop, a tap control loop acts on tap 1 and controls gain M₁ such that coefficient C₁ (as controlled by the filter control loop) satisfies a predetermined control condition. For example, |C₁| can be maximized subject to the constraint |C₁|≦C_(max), where C_(max) is a predetermined maximum coefficient value.

Consideration of a simple example will show how the configuration of FIG. 3 achieves the objective of reduced quantization noise in adaptive filtering. Suppose the coefficient generator is digital and can provide integer coefficients in the range from −511 to 512. We also take M₂=M₃=1 u, and assume M₁ can take on a value selected from the set {1 u, u/2, u/4, u/8, u/16, u/32, u/64}. This set of gains can also be regarded as integer multiples of a unit gain G₀: {G₀, 2G₀, 4G₀, 8G₀, 16G₀, 32G₀, 64G₀}, where G₀=u/64. These multiples are powers of two in this example. We also assume the action of the filter control loop causes the filter weights to stabilize at about the following values: W₁=20 u, W₂=20 u, W₃=500 u.

The precision of W₃ is about 0.2%, while the precision of W₂ is about 5%, which is much worse. Equivalently, it is clear that W₂ is much more affected by quantization noise than W₃. Even though W₁ and W₂ have the same numerical values in this example, the precision of W₁ can be much better than the precision of W₂. Suppose the predetermined control condition on C₁ is to maximize its magnitude subject to the constraint |C₁|≦450 (to provide some dynamic range margin). In this example, the dynamic gain logic 308 can perform a few simple calculations to determine that setting M₁=u/16 satisfies the assumed control condition on C₁. The resulting value of C₁ is 320, which has a precision of about 0.3%. Thus the dynamic gain scaling provided by the tap control loop acting on tap 1 provides greatly improved precision for the W₁ tap weight compared to the conventional approach used to provide the W₂ tap weight. Note that C₁ is controlled by the filter control loop, and automatically assumes its higher value as a result of the inclusion of tap gain M₁=u/16 into the filter control loop path pertaining to C₁ (and W₁).

Such provision of dynamic tap gain is applicable in a wide variety of ways to adaptive transversal filters. For example, only one tap control loop is shown on FIG. 3 for simplicity, but the invention can be practiced with any number of tap control loops. More specifically, if a tap control loop acts on a tap k where 1≦k≦N, (N being the number of taps) then one or more additional tap control loops can be added, each indexed with a distinct integer n where 1≦n≦N and n≠k. Each of these additional loops controls its corresponding tap gain M_(n) such that its corresponding tap coefficient C_(n) satisfies a predetermined control condition.

Another variation is the use of a single tap control loop to control multiple tap gains. In many cases, it is reasonable to assume that suitable tap gains do not change greatly from one tap to the next. For example, a tap control loop acting on tap 15 controls tap gain M₁₅, and in many cases, it would be more reasonable to set M₁₆=M₁₄=M₁₅ directly than to provide separate tap control loops for taps 14 and 16. The range could be extended further (e.g., from M₁₂ through M₁₈ inclusive), depending on the application. More generally, a tap control loop acting on a tap k can also act on one or more taps m where m≠k by setting M_(m)=M_(k). In such cases, the control condition to apply to C_(k) is preferably maximization of |C_(k)| subject to the constraint that |C_(k)| and all of the |C_(m)| remain below a predetermined maximum value.

Other variations relate to operation modes of the tap control loops. In some cases, the tap control loops will act on their respective taps to control the corresponding tap gains at substantially all times the filter is operating. In other cases, the tap control loops will only be active during an initialization phase of filter operation, the tap gains M_(j) being held constant during non-initialization operation. Another alternative is automatically disabling taps having a weight W_(j)≦W_(min), where W_(min) is a predetermined minimum weight. Such disabling of taps having small weights can reduce power consumption, decrease noise and/or improve linearity.

Another variant operating mode is based on the expectation that in many cases, the tap gains M_(j) will not change rapidly in closed loop operation. Therefore, it is possible to use a single tap control loop to individually control multiple taps by time interleaving. More specifically, in a filter having a single tap control loop, the index k designating which tap the tap control loop acts upon can be varied during filter operation. For example, k can cycle repeatedly through all values 1 . . . N where N is the number of taps. When the tap control loop is not acting on a tap, the corresponding tap gain is held constant. If the time interval between updates to the tap gains is smaller than the time scale for significant changes to the tap gains, such time interleaving does not incur a significant performance penalty.

In the example of FIG. 3, it was assumed that the tap control loop forms a difference between |C_(k)| and C_(max) in order to determine what adjustment to make to M_(k). In some cases this difference is available, and in other cases this difference is not available. However, a tap control loop having a comparator that provides a two-level output indicating which of |C_(k)| and C_(max) is larger can also be used in a tap control loop according to the invention, although loop settling is generally faster if the difference between |C_(k)| and C_(max) is available. In the example of FIG. 3, if we assume M_(k) has an initial value of 1 u and that the tap control loop has only a comparator, we see that the loop will set M_(k) to u/2, u/4, u/8, and u/16 in succession, and then M_(k) will alternate between u/16 and u/32 thereafter. In this example, it is preferable to set C_(max) low enough such that |C_(k)|≦2*C_(max) is still within the operating range of the circuit, such that this alternation does not cause C_(k) to go out of bounds. Furthermore, in cases where the loops for controlling M_(k) are only active during initialization, it is preferable to select the higher M_(k) of such an alternation as the value to hold fixed once initialization ceases, in order to keep C_(k) well within the operating range of the circuit.

Examples of decision feedback equalizers (DFE) in accordance with embodiments of the invention are shown on FIGS. 4-6. Lines that cross on FIGS. 4-6 are not electrically connected unless there is a dot or a circle at the intersection. A circle is used to indicate a connection to a bus having multiple signals, and buses are shown with heavy lines. FIG. 4 shows a DFE according to an embodiment of the invention. An analog summer 402 receives an external input x(t) and receives inputs from multipliers 422, 424, and 426, and provides an output y(t) (equal to the sum of all inputs) to a slicer 404. Slicer 404 provides a data output “d”, or d(t), and an error output “e”. The input x(t) is preferably buffered with a buffer (not shown) before summer 402 in order to isolate the DFE from upstream circuitry.

The data signal d(t) is input to an adaptive transversal filter formed by delays 416, 418, and 420, and by multipliers 422, 424, and 426. Note that y(t)=x(t)+f(t), where f(t) is the output of this transversal filter responsive to d(t). Delay elements 416, 418 and 420 provide inputs to multipliers 422, 424, and 426 respectively. Multipliers 422, 424 and 426 receive coefficients C₁, C₂, and C₃ respectively from a coefficient generator 408, and receive tap gains M₁, M₂ and M₃ respectively from a dynamic gain logic 412.

The data and error signals from slicer 404 are received by a digital filter/correlator 406 which filters the data signal and correlates the result to the error signal to provide signals to coefficient generator 408. Coefficient generator 408 provides coefficients C₁, C₂, and C₃ to multipliers 422, 424, and 426 respectively. Digital filter/correlator 406 and coefficient generator 408 are well known in the art. For example, a typical algorithm for this sort of closed loop adaptive filter is called Least-Mean Squared (LMS) filtering.

Coefficients C₁, C₂, and C₃ are also received by a comparator 410, which compares their magnitudes to a predetermined value C_(max) input to comparator 410. The output of comparator 410 is received by dynamic gain logic 412 which controls the tap gains M₁, M₂, and M₃ such that the magnitudes of the corresponding coefficients C₁, C₂, and C₃ are maximized subject to the constraint |C_(j)|≦C_(max). Thus the example of FIG. 4 can be regarded as including an adaptive transversal filter of the kind shown on FIG. 3, except that all three taps have dynamically controlled gains on FIG. 4 as opposed to only one tap having a dynamically controlled gain on FIG. 3.

Delay elements 416, 418, and 420 are preferably shift registers. Multipliers 422, 424, and 426 are shown as three-input multipliers, each providing an output proportional to the product of its three inputs. Such three-input multipliers can be implemented in various ways. A single three-input multiplier can be used in cases where a suitable single component is commercially available. A more flexible alternative is the use of two two-input multipliers. For example, a first two-input multiplier can receive M_(k) and C_(k) as inputs and provide W_(k) as an output, and a second two-input multiplier can receive W_(k) and d(t−T_(k)) as inputs, and provide W_(k)×d(t−T_(k)) as an output. In this approach, the first multiplier need not be a four quadrant multiplier, since M_(k) is preferably positive. Generally, inputs and outputs of a multiplier can be either analog or digital in any combination. Two-input multipliers having any combination of analog and/or digital inputs and outputs are known. Thus, provision of three-input multiplication having any combination of analog and/or digital inputs and outputs can be accomplished by appropriately combining two two-input multipliers. For example, a two-input Gilbert cell multiplier can have a digital input and an analog input.

FIG. 5 shows a DFE similar to the DFE of FIG. 4 except for two differences: 1) on FIG. 5 a single time-interleaved control loop is used to control the tap gains; and 2) the tap control loop of FIG. 5 forms a difference between |C_(k)| and C_(max). More specifically, on FIG. 5 a tap selector 502 selects which of the taps the tap control loop is currently acting on. In typical operation, tap selector 502 will repeatedly cycle through all taps (e.g., 1,2,3,1,2,3, etc.) so that each tap has its gain under active control some of the time. Tap selector 502 provides the selected tap coefficient C_(k) (as an analog signal) to an analog to digital converter (ADC) 504, which provides a corresponding digital output. The digital output is received by dynamic gain logic 506, which also receives the maximum coefficient value C_(max) as an input. Dynamic gain logic 506 forms the difference between C_(max) and the selected coefficient |C_(k)| in order to control the corresponding tap gain M_(k). Tap selector 502 provides an input to gain logic 506 indicating which tap the loop is acting on. Tap gains M_(m) with m≠k are held constant while the tap control loop is acting on tap k. In typical operation, the tap gains will change slowly, which allows time interleaving as described without excessive error.

FIG. 6 shows a DFE similar to the DFE of FIG. 4 except that most of the analog circuitry shown on FIG. 4 is replaced with equivalent digital circuitry. Generally, the invention can be practiced with any combination of analog and/or digital circuitry, so the embodiments shown on FIGS. 4 and 6 are by way of example as opposed to limitation. More specifically, on FIG. 6 the output of analog summer 402 is provided to an ADC 602. The digital output of ADC 602 is provided to a digital slicer 604, which provides a quantized digital version of its input to the delay line formed by delay elements 416, 418, and 420.

As on FIG. 4, digital filter/correlator 406 receives data and error signals from slicer 604, and provides signals to a coefficient generator 606. Slicer 604, filter/correlator 406 and coefficient generator 606 can be integrated into a single digital signal processing (DSP) unit, and such integration is preferred for this embodiment. Coefficient generator 606 provides coefficients C₁, C₂, and C₃ as digital values to multipliers 610, 612, and 614, and to dynamic gain logic 608. Gain logic 608 relates the magnitudes of coefficients C₁, C₂, and C₃ to a maximum coefficient value C_(max) (either by simple comparison or by forming a difference) in order to control corresponding tap gains M₁, M₂, and M₃. Note that since M_(k) tends to have discrete values (u/2, u/4, etc), C_(k) is not generally set to C_(max) but rather |C_(k)| ends up having a value near C_(max) due to closed-loop operation. Multipliers 610, 612 and 614 are implemented in digital hardware. The outputs of multipliers 610, 612, and 614 are received by a digital summer 616, which provides its digital output to a DAC 618. DAC 618 provides its analog output to analog summer 402.

In digital embodiments, it is preferable to restrict the tap gains such that they are integer multiples of a unit gain G₀, to simplify implementation of multiplication. It is especially advantageous for these integer multiples to be powers of two, such that digital multiplication by the tap gains can be performed with a simple bit shifting operation.

The preceding description provides several examples of embodiments of the invention. Many variations of these examples can also be used to practice the invention. In particular, functions shown in distinct blocks on block diagrams can generally be combined into a single block, and functions shown in a single block can be distributed over multiple blocks, while still practicing the invention. The input to an adaptive filter according to the invention can be analog or digital. In signal processing applications, filters according to the invention are applicable to input signals having any modulation format (e.g., pulse amplitude modulation). The tap gains, tap coefficients and tap delay outputs can each be either analog or digital signals. Mixed mode implementations are also possible, where analog and digital circuitry are both used in different parts of the filter.

For example, in some cases the tap gains are implemented digitally and the tap coefficients are implemented as analog signals, while the tap delays are implemented as digital gates. In this case, multiplication of tap coefficient and tap gain to obtain the tap weight can be performed using relatively slow analog circuitry (e.g., by inputting C_(k) to a segmented DAC having an output scaled by the gain M_(k)). The resulting analog tap weight W_(k) can be multiplied by the delayed data with fast analog circuitry (e.g., a Gilbert cell multiplier).

The preceding examples have shown filters with several taps. However, the invention is applicable to transversal filters having any number of taps, including single-tap transversal filters. 

1. An adaptive transversal filter having an input x(t), the filter comprising: a) a set of N≧1 taps, each tap having a distinct integer index j where 1≦j≦N, and each tap having a tap weight W_(j) and a tap delay T_(j), wherein a filter output is a sum of W_(j)x(t−T_(j)) as j runs from 1 to N, wherein each tap weight W_(j) is a product of a tap coefficient C_(j) and a tap gain M_(j); b) a filter control loop responsive to said filter output and controlling all of said tap coefficients to minimize an error signal derived in part from said filter output; and c) a tap control loop acting on one of said taps having an index k, and responsive to a tap coefficient C_(k), and controlling a tap gain M_(k) such that C_(k) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(k) is equal to said tap coefficient C_(j) if k=j, and wherein said tap gain M_(k) is equal to said tap gain M_(j) if k=j; wherein said predetermined control condition is maximization of the magnitude of said tap coefficient C_(k) subject to the constraint |C_(k)|≦C_(max), where C_(max) is a predetermined maximum coefficient value.
 2. The filter of claim 1, wherein said tap control loop includes a comparator providing a two-valued output indicating which of |C_(k)| and C_(max) is larger.
 3. The filter of claim 1, wherein said tap control loop forms a difference between |C_(k)| and C_(max).
 4. The filter of claim 1, further comprising one or more additional tap control loops, each having a distinct integer index n where 1≦n≦N and n≠k, and each responsive to a tap coefficient C_(n), and each controlling a corresponding tap gain M_(n) such that C_(n) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(n) is equal to said tap coefficient C_(j) if n=j, and wherein said tap gain M_(n) is equal to said tap gain M_(j) if n=j.
 5. The filter of claim 1, wherein said tap control loop acts on one or more of said taps having indices m≠k, and having tap gains M_(m), by setting said tap gains M_(m) equal to M_(k), wherein said tap gain M_(m) is equal to said tap gain M_(j) if m=j.
 6. The filter of claim 1, wherein said tap control loop operates to control said tap gain M_(k) at substantially all times said filter is operating.
 7. The filter of claim 1, wherein said tap control loop operates to control said tap gain M_(k) during initialization of said filter, said tap gain M_(k) being held constant during non-initialization operation.
 8. The filter of claim 1, wherein said index k determining which of said taps said tap control loop acts upon is varied during operation of said filter, whereby said tap control loop controls multiple tap gains by time interleaving.
 9. The filter of claim 8, wherein said index k takes on all values 1≦k≦N during operation, whereby all of said tap gains M_(j) are controlled by time interleaving.
 10. The filter of claim 1, wherein said tap gains M_(j) are implemented as analog or digital signals.
 11. The filter of claim 1, wherein said tap gains M_(j) are substantially integer multiples of a unit gain G₀.
 12. The filter of claim 11, wherein said integer multiples are powers of two.
 13. The filter of claim 1, wherein said coefficients C_(j) are implemented as analog or digital signals.
 14. The filter of claim 1, wherein said input x(t) is an analog or digital signal.
 15. The filter of claim 1, wherein said input x(t) has a pulse amplitude modulation.
 16. A signal processing system including an adaptive transversal filter having an input x(t), the filter comprising: a) a set of N≧1 taps, each tap having a distinct integer index j where 1≦j≦N, and each tap having a tap weight W_(j) and a tap delay T_(j), wherein a filter output is a sum of W_(j)x(t−T_(j)) as j runs from 1 to N, wherein each tap weight W_(j) is a product of a tap coefficient C_(j) and a tap gain M_(j); b) a filter control loop responsive to said filter output and controlling all of said tap coefficients C_(j) to minimize an error signal derived in part from said filter output; and c) a tap control loop acting on one of said taps having an index k, and responsive to a tap coefficient C_(k), and controlling a tap gain M_(k) such that C_(k) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(k) is equal to said tap coefficient C_(j) if k=j, and wherein said tap gain M_(k) is equal to said tap gain M_(j) if k=j; wherein said predetermined control condition is maximization of the magnitude of said tap coefficient C_(k) subject to the constraint |C_(k)|≦C_(max), where C_(max) is a predetermined maximum coefficient value.
 17. The signal processor of claim 16, wherein said signal processor is selected from the group consisting of: echo cancellers, decision feedback equalizers, feed forward equalizers, near end cross talk cancellers and far end cross talk cancellers.
 18. The signal processor of claim 16, further comprising one or more additional tap control loops, each having a distinct integer index n where 1≦n≦N and n≠k, and each responsive to a tap coefficient C_(n), and each controlling a corresponding tap gain M_(n) such that C_(n) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(n) is equal to said tap coefficient C_(j) if n=j, and wherein said tap gain M_(n) is equal to said tap gain M_(j) if n=j.
 19. A method for adaptive transversal filtering of an input x(t), the method comprising: a) providing a set of N≧1 taps, each tap having a distinct integer index j where 1≦j≦N, and each tap having a tap weight W_(j) and a tap delay T_(j), wherein a filter output is a sum of W_(j)x(t−T_(j)) as j runs from 1 to N, wherein each tap weight W_(j) is a product of a tap coefficient C_(j) and a tap gain M_(j); b) controlling all of said tap coefficients C_(j) to minimize an error signal derived in part from said filter output with a filter control loop responsive to said filter output; and c) providing a tap control loop acting on one of said taps having an index k, and responsive to a tap coefficient C_(k), and controlling a tap gain M_(k) such that C_(k) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(k) is equal to said tap coefficient C_(j) if k=j, and wherein said tap gain M_(k) is equal to said tap gain M_(j) if k=j; wherein said predetermined control condition is maximization of the magnitude of said tap coefficient C_(k) subject to the constraint |C_(k|≦C) _(max), where C_(max) is a predetermined maximum coefficient value.
 20. The method of claim 19, further comprising providing one or more additional tap control loops, each having a distinct integer index n where 1≦n≦N and n≠k, and each responsive to a tap coefficient C_(n), and each controlling a corresponding tap gain M_(n) such that C_(n) as controlled by said filter control loop satisfies a predetermined control condition; wherein said tap coefficient C_(n) is equal to said tap coefficient C_(j) if n=j, and wherein said tap gain M_(n) is equal to said tap gain M_(j) if n=j.
 21. The method of claim 19, further comprising disabling those of said taps having a weight W_(j)≦W_(min), where W_(min) is a predetermined minimum weight. 